#include<iostream>
#include<string>
#include<vector>
#include<set>
using namespace std;
//class Solution {
//public:
//    static int StrToInt(string str) {
//        int i = 0;
//        vector<char> ch;
//        set<char> charset = {'1','2','3','4','5','6','7','8','9'};
//        /*if (!(str[0] >= 48 || str[0] <= 57)||str[0]!='-'||str[0]!='+')
//        {
//            return 0;
//        }*/
//
//        while (i < str.length())
//        {
//            /*if ( str[0] == '-' || str[0] == '+' || ( charset.end()!= charset.find(str[i])))
//            {
//                ch.push_back(str[i]);
//            }*/
//            if (i==0 && (str[i] == '-' || str[i] == '+'))
//            {
//                ch.push_back(str[i]);
//            }
//            else if (charset.end() != charset.find(str[i]))
//            {
//                ch.push_back(str[i]);
//            }
//            else
//            {
//                break;
//            }
//
//            ++i;
//        }
//        if (i < str.length())
//        {
//            return 0;
//        }
//
//
//        int ret = 0;
//        int temp = 0;
//        if (ch[0] == '+')
//        {
//            int i = 1;
//            while (i < ch.size())
//            {
//                temp = ch[i] - '0';
//                ret = ret * 10 + temp;
//                i++;
//            }
//
//        }
//        else if (ch[0] == '-')
//        {
//            int i = 1;
//            while (i < ch.size())
//            {
//                temp = ch[i] - '0';
//                ret = ret * 10 + temp;
//                i++;
//            }
//            ret = -ret;
//        }
//        else
//        {
//            int i = 0;
//            while (i < ch.size())
//            {
//                temp = ch[i] - '0';
//                ret = ret * 10 + temp;
//                i++;
//            }
//        }
//        return ret;
//    }
//};
//int main()
//{
//    int ret = Solution::StrToInt("-1-+23");
//    cout << ret << endl;
//  
//	return 0;
//}

//class BinaryTreeNode
//{
//public:
//	BTDataType _data;
//	 BinaryTreeNode* _left;
//	 BinaryTreeNode* _right;
// 
//	 BinaryTreeNode(int value)
//		:_left(nullptr),_right(nullptr)
//	{
//		_data = value;
//	
//	}
//};

//void PrintTree( const BinaryTreeNode* root)
//{
//	if (root == nullptr)
//	{
//		cout << "NULL " ;
//		return;
//	}
//	//cout << root->_value << " ";
//	PrintTree(root->_left);
//	//cout << root->_value << " ";
//	PrintTree(root->_right);
//	cout << root->_data << " ";
//}
#include"BinaryTree.h"
void treeTest1()
{
	BinaryTreeNode root(0);
	BinaryTreeNode node1(1);
	BinaryTreeNode node2(2);
	BinaryTreeNode node3(3);
	BinaryTreeNode node4(4);
	BinaryTreeNode node5(5);
	BinaryTreeNode node6(6);
	root._left = &node1;
	root._right = &node2;
	node1._left = &node3;
	node1._right = &node4;
	node2._left = &node5;
	node2._right = &node6;

	/*PrintTree( &root );*/
	BinaryTreePrevOrder(&root);
	cout << endl;
	BinaryTreeInOrder(&root);
	cout << endl;
	BinaryTreePostOrder(&root);
	cout << endl;
	BinaryTreeLevelOrder(&root);
}

int main()
{
	treeTest1();

	return 0;
}








